class Envolvimento < ActiveRecord::Base
  belongs_to :processo
  belongs_to :envolvido
  belongs_to :enquadramento
  
  validates_presence_of :processo, :envolvido, :enquadramento
  
  class << self
    def find_by_processo_and_envolvido(processo, envolvido)
      raise ArgumentError, "'#{processo}' must be a Processo" unless processo.is_a? Processo
      raise ArgumentError, "'#{envolvido}' must be a Envolvido" unless envolvido.is_a? Envolvido
      find(:first, :conditions => ["processo_id = ? and envolvido_id = ?", processo.id, envolvido.id])
    end
  end
  
  private
  
  def validate
    if self.processo.envolvidos.include?(self.envolvido)
      errors.add_to_base("#{self.envolvido.nome} já está envolvido no processo #{self.processo.codigo}")
    end
  end
end
